docs: add developer setup guides and improve deployment scripts#53
docs: add developer setup guides and improve deployment scripts#53caifeizhi merged 1 commit intooceanbase:mainfrom
Conversation
- Add developer setup guides (English and Chinese) - Update README to link to developer guides - Fix launch_backend_service.sh to start sync_data_source service - Add Tailwind CSS plugin auto-fix script - Update service_conf.yaml for SeekDB deployment - Update pyproject.toml dependencies
There was a problem hiding this comment.
Pull request overview
Adds end-to-end developer setup documentation (EN/ZH) and adjusts local development/deployment tooling to better support a SeekDB (OceanBase) based environment, including frontend install-time Tailwind plugin patching and updated Python dependency sourcing.
Changes:
- Add English/Chinese developer setup guides and link them from READMEs.
- Update backend launch script to start
sync_data_sourceand set OceanBase-related defaults; adjustservice_conf.yamlfor SeekDB/OceanBase. - Add Tailwind CSS plugin auto-fix script hooked into
web’spostinstall, and updateuv/Python dependency configuration (incl.graspologic).
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| web/scripts/fix-tailwindcss-plugin.js | New Node script to patch known UmiJS Tailwind plugin issues after install. |
| web/package.json | Run Tailwind plugin fix script during postinstall. |
| uv.toml | Adds repo-wide uv index mirror configuration. |
| uv.lock | Updates lock resolution (incl. prerelease mode) and switches graspologic source. |
| pyproject.toml | Moves graspologic to registry version and sets uv index default. |
| docs/developer-setup-guide.md | New English source deployment guide (SeekDB + backend + frontend). |
| docs/developer-setup-guide-zh.md | New Chinese source deployment guide. |
| docker/launch_backend_service.sh | Ensure running from project root; add OceanBase defaults; start sync_data_source. |
| conf/service_conf.yaml | Update default config for SeekDB/OceanBase + OpenDAL + task executor queue type. |
| README.md | Link to the new developer setup guide. |
| README_zh.md | Link to the new Chinese developer setup guide. |
| name: 'powerrag' | ||
| user: 'root' | ||
| password: 'infini_rag_flow' | ||
| host: 'localhost' | ||
| port: 5455 | ||
| password: 'powerrag' | ||
| host: '127.0.0.1' | ||
| port: 2881 |
There was a problem hiding this comment.
This config switches the metadata DB to use the root account with a hard-coded password. Even for dev defaults, using a privileged user and committing real credentials makes accidental exposure/misuse more likely; prefer a dedicated least-privilege DB user and/or read the password from environment variables (keeping this file as a template/example).
| [[tool.uv.index]] | ||
| url = "https://pypi.tuna.tsinghua.edu.cn/simple" | ||
| default = true |
There was a problem hiding this comment.
Setting this index as default = true forces all uv resolutions to use the Tsinghua mirror by default, which can break installs in environments where the mirror is unreachable or incomplete. Consider keeping this as an optional index (not default) and documenting how to enable it, rather than changing global default behavior in-repo.
| # uv 加速配置 | ||
| # PyPI 下载镜像(清华源) | ||
| index-url = "https://pypi.tuna.tsinghua.edu.cn/simple" |
There was a problem hiding this comment.
Committing a repo-wide uv.toml with a hard-coded mirror makes installs depend on that mirror for every contributor/CI environment. Consider removing this file from the repo (or making it an example like uv.toml.example) and documenting the mirror as an opt-in setting instead.
| if [ -n "$JEMALLOC_PATH" ]; then | ||
| LD_PRELOAD=$JEMALLOC_PATH $PY rag/svr/task_executor.py "$task_id" | ||
| else | ||
| $PY rag/svr/task_executor.py "$task_id" | ||
| fi |
There was a problem hiding this comment.
Because this script runs with set -e, a non-zero exit from task_executor.py will terminate the whole script immediately, so the retry loop won’t actually retry. Run the python command in a context that suppresses -e (e.g., temporarily set +e, or append || true and capture $?) so failures can be handled by the retry logic.
| while ! $STOP && [ $retry_count -lt $MAX_RETRIES ]; do | ||
| echo "Starting sync_data_source.py (Attempt $((retry_count+1)))" | ||
| $PY rag/svr/sync_data_source.py | ||
| EXIT_CODE=$? | ||
| if [ $EXIT_CODE -eq 0 ]; then |
There was a problem hiding this comment.
This retry loop won’t work as intended under set -e: if sync_data_source.py exits non-zero, the script will exit before EXIT_CODE=$? is reached. Wrap the python invocation to avoid set -e aborting (temporarily disable -e or use cmd; EXIT_CODE=$? with set +e/set -e around it).
| user: 'root' | ||
| password: 'powerrag' | ||
| host: '127.0.0.1' | ||
| port: 2881 |
There was a problem hiding this comment.
With scheme: 'mysql', the OceanBase connection code reads host/port/user/password from the top-level mysql section, not from oceanbase.config (only db_name is used). Keeping duplicate credentials here is misleading and can drift; either remove the unused fields from oceanbase.config or switch scheme to the custom mode so oceanbase.config is authoritative.
| user: 'root' | |
| password: 'powerrag' | |
| host: '127.0.0.1' | |
| port: 2881 |
Summary
Solution Description